package com.fjb.mapper.product;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fjb.pojo.product.ProductInfo;
import com.fjb.pojo.product.query.ProductInfoQuery;
import com.fjb.pojo.product.vo.GetProductPhoneVo;
import com.fjb.pojo.product.vo.ProductInfoPageVo;

/**
 * <p>
 * 产品信息 Mapper 接口
 * </p>
 *
 * @author hemiao
 * @since 2020-01-27
 */
public interface ProductInfoMapper extends BaseMapper<ProductInfo> {
		
	/**
	 * @Description:分页列表查询
	 * @param productInfoQuery
	 * @return
	 * List<ProductInfoPageVo>
	 * @exception:
	 * @author: hemiao
	 * @time:2020年1月28日 下午12:23:54
	 */
	List<ProductInfoPageVo> selectPageList(ProductInfoQuery productInfoQuery);
	
	/**
	 * @Description:搜索查询
	 * @param productInfoQuery
	 * @return
	 * List<ProductInfoPageVo>
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月17日 下午11:42:04
	 */
	List<ProductInfoPageVo> selectSearchPageList(ProductInfoQuery productInfoQuery);
	
	/**
	 * @Description:根据id 查询
	 * @param productId
	 * @return
	 * ProductInfoPageVo
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月22日 下午9:39:41
	 */
	ProductInfoPageVo selectGetOneById(@Param("productId") Integer productId);
	
	/**
	 * @Description:浏览次数加 1
	 * @param productId
	 * @return
	 * int
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月24日 下午9:42:05
	 */
	int updateViewCountAdd(@Param("productId") Integer productId);
	
	/**
	 * @Description: 收藏次数 加 1
	 * @param productId
	 * @return
	 * int
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月24日 下午9:42:22
	 */
	int updateCollectCountAdd(@Param("productId") Integer productId);
	
	/**
	 * @Description:收藏次数减1	reduce
	 * @param productId
	 * @return
	 * int
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月24日 下午9:45:01
	 */
	int updateCollectCountReduce(@Param("productId") Integer productId);
	
	/**
	 * @Description:超赞次数加1
	 * @param productId
	 * @return
	 * int
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月24日 下午9:44:48
	 */
	int updatePraiseCountAdd(@Param("productId") Integer productId);
	
	/**
	 * @Description: 超赞次数减1
	 * @param productId
	 * @return
	 * int
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月24日 下午9:44:41
	 */
	int updatePraiseCountReduce(@Param("productId") Integer productId);
	
	/**
	 * @Description:想要次数加1
	 * @param productId
	 * @return
	 * int
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月24日 下午9:44:33
	 */
	int updateWantCountAdd(@Param("productId") Integer productId);
	
	/**
	 * @Description:获得产品手机号
	 * @param productId
	 * @return
	 * GetProductPhoneVo
	 * @exception:
	 * @author: hemiao
	 * @time:2020年2月24日 下午10:00:09
	 */
	GetProductPhoneVo getProductPhone(@Param("productId") Integer productId);
	
	/**
	 * @Description:查询我的产品列表
	 * @param productQuery
	 * @return
	 * List<ProductInfoPageVo>
	 * @exception:
	 * @author: hemiao
	 * @time:2020年3月1日 下午4:29:27
	 */
	List<ProductInfoPageVo> selectMyPagesList(ProductInfoQuery productQuery);
}
